.LC0:
        .string "Your coordinates: 25 25\n"
.LC1:
        .string "Enter move (1 for +x, -1 for -x, 2 for + y, -2 for -y):"
.LC2:
        .string "Your coordinates: "
.LC3:
        .string " "
.LC4:
        .string "Robot at "
.LC5:
        .string "AAAARRRRGHHHHH... Game over\n"
main:
        push    rbp
        mov     rbp, rsp
        sub     rsp, 64
        mov     DWORD PTR [rbp-8], 25
        mov     DWORD PTR [rbp-12], 25
        mov     DWORD PTR [rbp-16], 1
        mov     DWORD PTR [rbp-32], 0
        mov     DWORD PTR [rbp-48], 0
        mov     DWORD PTR [rbp-28], 0
        mov     DWORD PTR [rbp-44], 50
        mov     DWORD PTR [rbp-24], 50
        mov     DWORD PTR [rbp-40], 0
        mov     DWORD PTR [rbp-20], 50
        mov     DWORD PTR [rbp-36], 50
        mov     esi, OFFSET FLAT:.LC0
        mov     edi, OFFSET FLAT:_ZSt4cout
        call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
.L9:
        cmp     DWORD PTR [rbp-16], 1
        jne     .L2
        mov     esi, OFFSET FLAT:.LC1
        mov     edi, OFFSET FLAT:_ZSt4cout
        call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
        lea     rax, [rbp-52]
        mov     rsi, rax
        mov     edi, OFFSET FLAT:_ZSt3cin
        call    std::basic_istream<char, std::char_traits<char> >::operator>>(int&)
        mov     eax, DWORD PTR [rbp-52]
        cmp     eax, 1
        jne     .L3
        add     DWORD PTR [rbp-8], 1
        jmp     .L4
.L3:
        mov     eax, DWORD PTR [rbp-52]
        cmp     eax, -1
        jne     .L5
        sub     DWORD PTR [rbp-8], 1
        jmp     .L4
.L5:
        mov     eax, DWORD PTR [rbp-52]
        cmp     eax, 2
        jne     .L6
        add     DWORD PTR [rbp-12], 1
        jmp     .L4
.L6:
        mov     eax, DWORD PTR [rbp-52]
        cmp     eax, -2
        jne     .L4
        sub     DWORD PTR [rbp-12], 1
.L4:
        mov     ecx, DWORD PTR [rbp-12]
        mov     edx, DWORD PTR [rbp-8]
        lea     rsi, [rbp-48]
        lea     rax, [rbp-32]
        mov     rdi, rax
        call    moveRobots(int*, int*, int, int)
        mov     DWORD PTR [rbp-16], eax
        mov     esi, OFFSET FLAT:.LC2
        mov     edi, OFFSET FLAT:_ZSt4cout
        call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
        mov     rdx, rax
        mov     eax, DWORD PTR [rbp-8]
        mov     esi, eax
        mov     rdi, rdx
        call    std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
        mov     esi, OFFSET FLAT:.LC3
        mov     rdi, rax
        call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
        mov     rdx, rax
        mov     eax, DWORD PTR [rbp-12]
        mov     esi, eax
        mov     rdi, rdx
        call    std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
        mov     esi, OFFSET FLAT:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
        mov     rdi, rax
        call    std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
        mov     DWORD PTR [rbp-4], 0
.L8:
        cmp     DWORD PTR [rbp-4], 3
        jg      .L9
        mov     esi, OFFSET FLAT:.LC4
        mov     edi, OFFSET FLAT:_ZSt4cout
        call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
        mov     rdx, rax
        mov     eax, DWORD PTR [rbp-4]
        cdqe
        mov     eax, DWORD PTR [rbp-32+rax*4]
        mov     esi, eax
        mov     rdi, rdx
        call    std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
        mov     esi, OFFSET FLAT:.LC3
        mov     rdi, rax
        call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
        mov     rdx, rax
        mov     eax, DWORD PTR [rbp-4]
        cdqe
        mov     eax, DWORD PTR [rbp-48+rax*4]
        mov     esi, eax
        mov     rdi, rdx
        call    std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
        mov     esi, OFFSET FLAT:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
        mov     rdi, rax
        call    std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
        add     DWORD PTR [rbp-4], 1
        jmp     .L8
.L2:
        mov     esi, OFFSET FLAT:.LC5
        mov     edi, OFFSET FLAT:_ZSt4cout
        call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
        mov     eax, 0
        leave
        ret
moveRobots(int*, int*, int, int):
        push    rbp
        mov     rbp, rsp
        sub     rsp, 64
        mov     QWORD PTR [rbp-40], rdi
        mov     QWORD PTR [rbp-48], rsi
        mov     DWORD PTR [rbp-52], edx
        mov     DWORD PTR [rbp-56], ecx
        mov     DWORD PTR [rbp-28], 1
        mov     rax, QWORD PTR [rbp-40]
        mov     QWORD PTR [rbp-16], rax
        mov     rax, QWORD PTR [rbp-48]
        mov     QWORD PTR [rbp-24], rax
        mov     DWORD PTR [rbp-4], 0
.L14:
        cmp     DWORD PTR [rbp-4], 3
        jg      .L12
        mov     rax, QWORD PTR [rbp-16]
        mov     eax, DWORD PTR [rax]
        mov     edx, DWORD PTR [rbp-52]
        mov     esi, edx
        mov     edi, eax
        call    getNew(int, int)
        mov     rdx, QWORD PTR [rbp-16]
        mov     DWORD PTR [rdx], eax
        mov     rax, QWORD PTR [rbp-24]
        mov     eax, DWORD PTR [rax]
        mov     edx, DWORD PTR [rbp-56]
        mov     esi, edx
        mov     edi, eax
        call    getNew(int, int)
        mov     rdx, QWORD PTR [rbp-24]
        mov     DWORD PTR [rdx], eax
        mov     rax, QWORD PTR [rbp-16]
        mov     eax, DWORD PTR [rax]
        cmp     DWORD PTR [rbp-52], eax
        jne     .L13
        mov     rax, QWORD PTR [rbp-24]
        mov     eax, DWORD PTR [rax]
        cmp     DWORD PTR [rbp-56], eax
        jne     .L13
        mov     DWORD PTR [rbp-28], 0
        jmp     .L12
.L13:
        add     QWORD PTR [rbp-16], 4
        add     QWORD PTR [rbp-24], 4
        add     DWORD PTR [rbp-4], 1
        jmp     .L14
.L12:
        mov     eax, DWORD PTR [rbp-28]
        leave
        ret
getNew(int, int):
        push    rbp
        mov     rbp, rsp
        mov     DWORD PTR [rbp-20], edi
        mov     DWORD PTR [rbp-24], esi
        mov     eax, DWORD PTR [rbp-20]
        sub     eax, DWORD PTR [rbp-24]
        mov     DWORD PTR [rbp-8], eax
        cmp     DWORD PTR [rbp-8], 9
        jle     .L17
        mov     eax, DWORD PTR [rbp-20]
        sub     eax, 10
        mov     DWORD PTR [rbp-4], eax
        jmp     .L18
.L17:
        cmp     DWORD PTR [rbp-8], 0
        jle     .L19
        mov     eax, DWORD PTR [rbp-20]
        sub     eax, 1
        mov     DWORD PTR [rbp-4], eax
        jmp     .L18
.L19:
        cmp     DWORD PTR [rbp-8], 0
        jne     .L20
        mov     eax, DWORD PTR [rbp-20]
        mov     DWORD PTR [rbp-4], eax
        jmp     .L18
.L20:
        cmp     DWORD PTR [rbp-8], -9
        jl      .L21
        mov     eax, DWORD PTR [rbp-20]
        add     eax, 1
        mov     DWORD PTR [rbp-4], eax
        jmp     .L18
.L21:
        cmp     DWORD PTR [rbp-8], -9
        jge     .L18
        mov     eax, DWORD PTR [rbp-20]
        add     eax, 10
        mov     DWORD PTR [rbp-4], eax
.L18:
        mov     eax, DWORD PTR [rbp-4]
        pop     rbp
        ret
__static_initialization_and_destruction_0(int, int):
        push    rbp
        mov     rbp, rsp
        sub     rsp, 16
        mov     DWORD PTR [rbp-4], edi
        mov     DWORD PTR [rbp-8], esi
        cmp     DWORD PTR [rbp-4], 1
        jne     .L25
        cmp     DWORD PTR [rbp-8], 65535
        jne     .L25
        mov     edi, OFFSET FLAT:_ZStL8__ioinit
        call    std::ios_base::Init::Init() [complete object constructor]
        mov     edx, OFFSET FLAT:__dso_handle
        mov     esi, OFFSET FLAT:_ZStL8__ioinit
        mov     edi, OFFSET FLAT:_ZNSt8ios_base4InitD1Ev
        call    __cxa_atexit
.L25:
        nop
        leave
        ret
_GLOBAL__sub_I_main:
        push    rbp
        mov     rbp, rsp
        mov     esi, 65535
        mov     edi, 1
        call    __static_initialization_and_destruction_0(int, int)
        pop     rbp
        ret